package com.shujia.io.seven;

import org.junit.Test;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomRWSteamDemo {

    @Test
    public void test2() {
        try (RandomAccessFile raf = new RandomAccessFile("file\\chg2.txt", "rw")) {
//            String str = "回眸一笑百媚生，六宫粉黛无颜色。";
//            raf.write(str.getBytes());
            raf.writeUTF("回眸一笑百媚生，六宫粉黛无颜色。");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    @Test
    public void test1() {
        try (RandomAccessFile raf = new RandomAccessFile("file\\chg.txt", "rw")) {
            //raf.readLine() 一次读取一个字节, 转为char类型, 拼接StringBuffer并返回
            byte[] bys = new byte[48];
            ByteArrayOutputStream baos = new ByteArrayOutputStream();

//            long getFilePointer()：获取文件记录指针的当前位置，以字节为单位
            System.out.println("初始指针位置: " + raf.getFilePointer());
//            void seek(long pos)：将文件记录指针定位到 pos 位置，以字节为单位

            int len;
            while ((len = raf.read(bys)) != -1) {
                // System.out.println("--------" + raf.getFilePointer());
                // baos.write(bys, 0, len);
                System.out.println(new String(bys, 0, bys.length));
                raf.seek(0);
            }

            System.out.println(baos);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
